<img src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/20241213003854.png"/>



当研发系统设计评审完成以后，接下来就会进入正式的研发阶段了。这个我们按照一个完整的新系统开发过程中，需要的做的事情为准，看看都需要做哪些事情。


## 系统搭建

通常我们会按照一个系统需要服务建设的复杂度来选择搭建的框架，比如：单体架构、分布式架构、分库分表架构、分层架构等，按照不同的体量进行选择。如果是较大型的系统开发则会把不同的职责拆分为独立的系统进行开发，包括：基础层、业务层、网关层、任务层、异步层，基础层处理数据库、Redis、ES的使用以及提供原子接口。业务层用于包装业务、网关提供Http接口、任务层处理分布式任务、异步层用于接收MQ消息。


## 数据服务

一般互联网中的系统大部分都是使用 MySql 作为数据库服务使用，因为它是免费的，如果数据量较大还可以使用分库分表策略进行设计数据库。如果分库分表，那么散落在各个库表里的数据，就需要基于binlog 使用 otter 工具把数据同步到 ES 中，便于汇总查询。

## 测试环境

在一些大厂开发中，通常本地的开发机器是不能直接启动运行测试完整流程的，需要把服务部署到测试环境，才可以正常调用访问一些相关资源。
## 功能开发

从一个系统的开发过程可以包括：数据库表创建、原子服务开发、业务逻辑串联、领域功能实现、网关接口包装，一层层搭建和开发各个模块的功能。重在思考领域的建设，把隔层的实现分离到各个层里，避免互相污染。常用技术使用上包括：RPC、MQ、分布式任务、配置中心、网关、Redis

## 单元测试

其实这个是一个研发标准或者内部自发的约定，因为很大一部分研发是不写单测的，也不考虑单测覆盖率，这样的代码通常在交付测试以后会有很大的风险，其实编写单元测试是提升研发交付质量非常重要的一环，只有你自己已经完整地测试过的代码，才会保证如期交付上线。

## 接口联调
在接口联调阶段主要包括自身功能开发对接外部，和自己提供出去的接口。通常在服务端开发完成接口的30%时，可以把部分接口提供给前端，前端开始对接接口，服务端陆续提供新的接口。直至所有接口对接完成并联调通过。
## 提交测试

在研发开发完成并代码评审以后，接下来就是对整个系统开始提交测试阶段。这个时候需要按照约定提交测试报告，包括：涉及的系统、开发的接口、单测覆盖度等。